package com.elric.mall.service;

import com.elric.mall.dto.*;
import com.elric.mall.enums.ImportType;
import com.elric.mall.model.PlanProject;
import com.elric.mall.model.ProgrammeProject;
import com.elric.mall.model.UmsAdmin;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.util.List;

/**
 * 实现功能：
 *
 * @author 作者[Yuxuan.he]
 * @version 1.0.00  2021-09-16 11:14
 */
public interface PlanProjectService {

    /**
     * 创建
     */
    int create(PlanProject kzRollback, UmsAdmin umsAdmin);

    /**
     * 更新
     */
    int update(PlanProject kzRollback);

    /**
     * 保存项目信息统一接口，不区分create或者update
     * @param dto
     * @param umsAdmin
     * @return
     */
    PlanProjectDto save(PlanProjectDto dto, UmsAdmin umsAdmin);

    /**
     * 根据ID获取详情
     */
    PlanProjectDto findById(String id);

    /**
     * 根据id查找相关联计划项目信息
     * @param id
     * @return
     */
    List<ProgrammeManageDto> getProgrammeById(String id);

    /**
     * 根据ID删除
     */
    int delete(String id);

    /**
     * 分页查询
     */
    List<PlanProject> list(Integer pageSize, Integer pageNum, PlanProject kzRollback);

    /**
     * excel导入
     * @param request
     * @return
     */
    List<PlanProjectImportDto> importDocuments(MultipartHttpServletRequest request);

    /**
     * 批量插入
     * @param list
     * @param importType
     * @return
     */
    int insertBatch(List<PlanProject> list, ImportType importType);

    /**
     * 根据excel模板批量导入
     * @param list
     * @param umsAdmin
     * @param importType
     * @return
     */
    int insertExcelBatch(List<PlanProjectImportDto> list, UmsAdmin umsAdmin, ImportType importType);

    /**
     * 根据查询条件导出规划项目数据
     * @param planProject
     * @return
     */
    List<PlanProjectExportDto> findExportByModel(PlanProject planProject);
}
